package fun.carliels.doraemon.common.crypto;

import fun.carliels.doraemon.common.StringKit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

/**
 * 加密器，提供通用加解密方法
 */
public class Encryptor {

    private static final Logger log = LoggerFactory.getLogger(Encryptor.class);

    /**
     * 默认加密失败返回
     */
    public static final String DEFAULT_ERROR_RESULT = "encrypt_exception";

    /**
     * MD5加密,默认UTF-8编码
     * @param plaintext 明文
     * @return
     */
    public static String md5(String plaintext) {
        String ciphertext = MD5.encrypt(plaintext, StandardCharsets.UTF_8);
        return StringKit.getSafety(ciphertext, DEFAULT_ERROR_RESULT);
    }

    /**
     * MD5加密
     * @param plaintext 明文
     * @param charset 明文编码
     * @return
     */
    public static String md5(String plaintext, Charset charset) {
        String ciphertext = MD5.encrypt(plaintext, charset);
        return StringKit.getSafety(ciphertext, DEFAULT_ERROR_RESULT);
    }
}
